package com.woniuxy.kaer.shop.model;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

/**
 * <p>
 * 
 * </p>
 *
 * @author 郭建东
 * @since 2025年02月17日
 */
@Getter
@Setter
@Accessors(chain = true)
@TableName("product_order")
public class ProductOrder implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "product_order_id", type = IdType.AUTO)
    private String productOrderId;

    @TableField("order_time")
    private LocalDateTime orderTime;


    @TableField("user_id")
    private Integer userId;

    @TableField("order_placer")
    private String orderPlacer;

    @TableField("order_placer_mobile")
    private String orderPlacerMobile;

    /**
     * 收货人姓名
     */
    @TableField("delivery_name")
    private String deliveryName;

    /**
     * 收货人电话
     */
    @TableField("delivery_phone")
    private String deliveryPhone;

    /**
     * 收货地址
     */
    @TableField("delivery_address")
    private String deliveryAddress;

    /**
     * 总金额
     */
    @TableField("total")
    private BigDecimal total;

    /**
     * 支付状态0.待支付 1.已支付
     */
    @TableField("pay_state")
    private Integer payState;

    /**
     * 订单状态0.待发货1.已发货 2.已收货 3.待评价 4.已完成5.已退款
     */
    @TableField("order_state")
    private Integer orderState;

    @TableField("pay_time")
    private LocalDateTime payTime;

    /**
     * 0.第三方网络支付 1.积分支付
     */
    @TableField("pay_type")
    private Integer payType;

    @TableField("evalute")
    private Integer evalute;

    /**
     * 0.未退款1.部分退款1.全额退款
     */
    @TableField("refund_state")
    private Integer refundState;

    @TableField("refund_amount")
    private BigDecimal refundAmount;

    @TableField("refund_time")
    private LocalDateTime refundTime;


}
